package com.bblocks.pojo.vo;

import com.bblocks.serve.vo.ServiceCatalogVo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;

import java.util.Date;
import java.util.List;


@Data
@Schema(description="商家端-角色 实体")
public class CmpRoleWithCatalogVo {

	@Schema(description="主键")
	private String id;

	//@Schema(description="唯一编码")
	@Schema(description ="公司业务分类(根据此数据的code 判断行业分类, 公司：" +
			"装修 ZY" +
			"家居 JJ" +
			"汽车 QCXS" +
			"汽车保养 QCBY" +
			"美食 MS" +
			"搬家 BJIA" +
			"保洁 BJIE" +
			"维修 WX<br>" +
			"个人角色：" +
			"普通个人=ptgr"+
			"团长=tz"+
			"经纪人=jjr*,jjr开头的，如：jjr_xx" +
			"设计师=sjs*" +
			"监理=jl*" +
			"验房师=yfs*" +
			"工长（工程总监）=gz*" +
			"工人=gr*")
	private String code;

	@Schema(description="名称")
	private String name;

	@Schema(description="状态-0无需要认证 1需要认证")
	private Integer state;

	@Schema(description="代客惠角色类型(1-普通用户；2-经纪人；3-商家；)")
	private Integer isShare;

	@Schema(description="创建人名称")
	private String creator;

	@Schema(description="创建时间")
	private Date createtime;

	@Schema(description="备注")
	private String remark;

	@Schema(description="上级菜单id")
	private String parentId;

	@Schema(description="排序")
	private Integer orderNum;

	@Schema(description="角色基础业务编码 (关联yz_service_catalog.code)")
	private String businessCode;

	@Schema(description="申请类型：1=可以，0=否（内部用的）")
	private Integer roleType;


	@Schema(description="商家端模式角色类型（主要是1,2,3）：0-平台 1超级管理员（注册商家端的人） 2 普通管理员（商家端管理员,code含gly）3 普通员工（普通商家端，经纪人，其他的都放此类） 4 店长  5 个人"/*,notes = "商家端用"*/)
	private String roleTypeCode;


	@Schema(description="关联平台角色"/*,notes = "非平台角色才需要关联(也不一定有)，目前只有拉过去的角色才会有"*/)
	private String relatedId;

	@Schema(description="所属公司")
	private Integer companyId;

	@Schema(description="角色基础业务子分组编码（支持多个，逗号分割，business_code下属分类，）（不配置则全部，配置了则申请的时候只能在此范围内，其他的在非申请模式下可以用）")
	private String businessTags;

	@Schema(description="角色基础业务子分组编码是否可以多选（除了经纪人都能多选） 1=多选，0=否")
	private Integer businessTagsMulti;

	@Schema(description = "对应的业务"/*,notes = "businessCode 对应的业务类"*/)
	private ServiceCatalogVo serviceCatalog;
}
